package ziface

import "net"

// 连接模块的抽象层
type IConnection interface {
	// Start 启动连接  让当前的连接准备开始工作
	Start()
	// Stop 停止连接 结束当前连接的工作
	Stop()
	// GetTcpConnection 获取当前连接绑定的socket conn
	GetTcpConnection() *net.TCPConn // 返回TCPConn结构体的值
	// GetRemoteID 获取当前连接模块的连接ID
	GetRemoteID() uint32 // 返回无符号整数的连接ID
	// GetRemoteAddr 获取远程客户端的TCP状态 ，IP、Port
	GetRemoteAddr() net.Addr // 返回地址类型，ip和 port
	// Send 发送数据  发送数据给远程的客户端
	Send(data []byte) error //转换为字节类型发送，返回报错
}

// 以及一个处理业务连接的方法
// 形参：套接字，可以进行读取/收发  ；处理数据的内容 ； 处理数据的大小
type HandleFunc func(*net.TCPConn, []byte, int) error
